Skip to main content

Criminal Risk Exact Verification API

This document highlights the Criminal Risk Exact Verification API details.

API Description

Objective

The Criminal Risk Exact Verification API gathers important information such as the individual's exact name and address etc and provides comprehensive risk assessment details regarding the individual's potential involvement in criminal activities.

InputOutput
The details of the individual being assessed for potential criminal involvementThe details corresponding to the criminal records fetched for the individual. The complete list of output fields is available in the Success Response Details section.
info
The Criminal Risk Exact Verification API employs exact field matching techniques to compare the input details against the database.

API URL

https://ind-engine.thomas.hyperverge.co/v1/criminalRiskExact

API Endpoint

criminalRiskExact

Overview

The API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should upload all images and files as form-data through a POST request.

Authentication

You need a unique pair of application ID ( appId ) and application key (appKey) from HyperVerge to verify your identity for accessing the API.

Method - POST

Headers

ParameterMandatory or OptionalDescriptionAllowed Values
content-type MandatoryThis parameter defines the media type for the request payloadapplication/json
appId MandatoryThe application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
appKey MandatoryThe application key shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
transactionIdMandatoryA unique identifier for tracking a user journeyThis should be both unique and easily associated with the user's journey in your application(s)

Inputs

The following table outlines the parameters required in the API's request body:

ParameterDescriptionMandatory or OptionalAllowed ValuesDefault Value
nameThe name of the individualMandatoryNot ApplicableNot Applicable
addressThe residential address of the individualOptionalNot ApplicableNot Applicable
fathernameThe father name of the individualOptionalNot ApplicableNot Applicable
dobThe date of birth (dob) of the individualOptionalNot ApplicableNot Applicable
sourceThe source or origin of the case information- eCourt, High Court or the Supreme CourtOptional"ecourt", "hc" and "sc"Not Applicable
caseCategoryThe category of the case- whether the report represents a civil or a criminal caseOptional"civil" , "criminal"Not Applicable
typeThe role of the individual in the caseOptional"petitioner" , "respondent"Not Applicable

Request

The following code snippet demonstrates a standard curl request for the API:

curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/criminalRiskExact' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_HyperVerge_appId>' \
--header 'appKey: <Enter_the_HyperVerge_appKey>' \
--header 'transactionId: <Enter_the_HyperVerge_transactionID>' \
--data '{
"name": "<Enter_the_name>",
"dob": "<Enter_the_Date_of_Birth>",
"fatherName": "<Enter_the_father_name>",
"address": "<Enter_the_address>",
"caseCategory": "<Enter_your_case_category>",
"source": "<Enter_the_source>",
"type": "<Enter_respondent_or_petitioner>"
}'

Success Responses

The following JSON code snippet demonstrates a success response from the API when it is triggered for the first time ever with the new data:

{
"status": "success",
"statusCode": "200",
"result": {
"message": "<Process_Status_Message>"
},
"metaData": {
"requestId": "<Unique_Request_Identifier>"
}
}
Note
The Criminal Risk Exact Verification API needs to be triggered twice for fresh data. After the first call, there should be a time gap of 4 to 5 seconds before making the second call. Only after the second call will the data be established in the database. Once the data is stored, subsequent requests will return the details with just the first API call.

Success Response Details

The following table outlines the details of the success response from the API:

ParameterTypeDescription
statusStringThe status of the response.
statusCodeIntegerThe HTTP status code of the response.
result.totalIntegerThe total number of cases returned in the response.
result.casesArrayThe list of cases returned by the API. Each case contains detailed information about the criminal record.
result.cases.addressStringThe address associated with the case.
result.cases.addressScoreIntegerA score indicating the match quality of the address.
result.cases.algoRiskStringThe risk level calculated by the algorithm (e.g., "very high risk").
result.cases.asrInfoStringThe legal code and sections under which the case is filed.
result.cases.businessCategoryStringThe business category related to the case (e.g., "Serious").
result.cases.caseCategoryStringThe category of the case (e.g., "criminal").
result.cases.caseCodeStringThe unique case code.
result.cases.caseFilterStringThe filter applied to the case (e.g., "POLICE_CASE").
result.cases.caseStatusStringThe current status of the case (e.g., "CASE DISPOSED").
result.cases.caseTypeStringThe type of the case (e.g., "Bail Matters").
result.cases.caseTypeCodeStringA code for the case type (e.g., "70").
result.cases.caseTypeDescriptionStringA description of the case type (if available).
result.cases.caseTypeNameStringThe name of the case type (e.g., "Bail Matters").
result.cases.caseYearIntegerThe year the case was filed.
result.cases.cnrStringThe Case Number Registration (CNR) of the case.
result.cases.courtCodeStringThe code for the court where the case was heard.
result.cases.courtNameStringThe name of the court handling the case.
result.cases.decisionDateString (Date)The date the decision was made in the case.
result.cases.distCodeStringThe district code where the case is filed.
result.cases.distMatchBooleanThe match status of the district.
result.cases.distNameStringThe name of the district where the case is filed.
result.cases.falconScoreIntegerThe calculated risk score for the case.
result.cases.fatherMatchTypeStringThe match type for the father's details in the case (if available).
result.cases.firNoStringThe FIR number associated with the case.
result.cases.firstHearingDateString (Date)The date of the first hearing of the case.
result.cases.idStringThe unique ID for the case, if available.
result.cases.isDistrictBooleanIndicates if the case is under district jurisdiction (1 for yes, 0 for no).
result.cases.isStateBooleanIndicates if the case is under state jurisdiction (1 for yes, 0 for no).
result.cases.jurisdictionStringIndicates if the case falls under jurisdiction.
result.cases.jurisdictionTypeStringThe type of jurisdiction (e.g., "STATE").
result.cases.linkString (URL)A URL link to more details about the case.
result.cases.matchedAddressStringThe address matched with the input data.
result.cases.matchedNameStringThe name matched with the input data.
result.cases.maxWordsMatchedIntegerThe maximum number of words matched in the case.
result.cases.md5StringA unique MD5 hash for the case record.
result.cases.nameStringThe name associated with the case.
result.cases.nameMatchTypeStringThe match type for the name (e.g., "PARTIAL_FUZZY").
result.cases.nameScoreIntegerThe score indicating how closely the name matches.
result.cases.natureOfDisposalStringThe nature of how the case was disposed (e.g., "Contested--ALLOWED").
result.cases.opartyStringThe opposing party in the case.
result.cases.policeStationStringThe name of the police station associated with the case.
result.cases.purposeOfHearingStringThe purpose of the hearing (if available).
result.cases.rawAddressStringThe raw address associated with the case.
result.cases.refStringA unique reference ID for the case.
result.cases.registrationDateString (Date)The date the case was registered.
result.cases.scoreIntegerThe overall match score for the case.
result.cases.sourceStringThe source from where the case information is obtained (e.g., "ecourt").
result.cases.stateCodeStringThe state code for the case.
result.cases.stateMatchBooleanThe match status of the state.
result.cases.stateNameStringThe name of the state where the case is filed.
result.cases.totalNameMatchIntegerThe total number of name matches found.
result.cases.typeStringThe type of case (e.g., criminal or civil).
result.cases.underActsStringThe legal acts under which the case is filed.
result.cases.underSectionsStringThe sections of the legal acts under which the case is filed.
result.cases.uniqCaseIdStringA unique case ID.
result.cases.verifycodeStringThe verification code for the case.
result.cases.wordsMatchedIntegerThe words from the input that matched with the case information.
result.cases.yearIntegerThe year in which the case is filed, if available.

Error Responses

The following are the error responses from the API:

{
"message": "name should not be empty",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Input Validation Error: is not one of enum values: source",
"statusCode": 400,
"status": "failure"
}

Error Response Details

A failure or error response from the module contains a failure status, with a relevant status code and error message. The following table lists all error responses:

Status CodeError MessageError Description
400name should not be emptyThe request has null or undefined value for name parameter
400Input Validation Error: is not one of enum values: civil,criminalThe input parameter caseCategory is provided with values other than "civil"/"criminal"
400Input Validation Error: is not one of enum values: petitioner,respondentThe input parameter type is provided with values other than "petitioner"/"respondent"
400Input Validation Error: is not one of enum values: ecourt,hc,scThe input parameter source is provided with values other than "ecourt", "hc","sc"
401Missing/Invalid credentialsThe request is either missing the mandatory appId and appKey combination or has invalid values
500Internal Server ErrorPlease check the request headers or contact the HyperVerge team for resolution
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: